package string_question.leecode.test409;

/**
 * 有点意思（套路题）
 * @author code_yc
 * @version 1.0
 * @date 2020/7/5 10:46
 */
public class Solution1 {

    // 1 如果指定字符为空， 则直接返回0
    // 2 创建一个128位的temp数组保存记录
    // 3 遍历temp数组， 如果遍历到偶数，直接累加到结果集上，如果遍历到奇数，将结果奇数减1构成偶数，然后加入到结果集上面
    // 4 最终可以有一个奇数个数的元素放在回文串中，所以如果遍历到奇数的t，结果要加上1
    public int longestPalindrome(String s) {
        if (s == null || s.equals("")) return 0;
        int n = s.length();
        int[] temp = new int[128];
        for (char c : s.toCharArray()) {
            temp[c]++;
        }
        int res = 0;
        int odd = 0;
        for (int t : temp) {
            if (t % 2 == 0) {
                res += t;
            } else {
                odd = 1;
                res += t - 1;
            }
        }
        return res + odd;
    }
}
